package com.sanqi.work.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.sanqi.common.annotation.Excel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sanqi.common.core.domain.BaseEntity;

/**
 * 员工对象 work_user
 * 
 * @author duany
 * @date 2025-09-24
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("work_user")
public class WorkUser extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    @TableId(type = IdType.ASSIGN_ID)
    private String id;

    /** 员工姓名 */
    @Excel(name = "员工姓名")
    @TableField(value="user_real_name")
    private String userRealName;

    /** 班组ID */
    @Excel(name = "班组ID")
    @TableField(value="team_id")
    private String teamId;

    /** 职场ID */
    @Excel(name = "职场ID")
    @TableField(value="workplace")
    private String workplace;

    /** 入职日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "入职日期", width = 30, dateFormat = "yyyy-MM-dd")
    @TableField(value="hire_date")
    private Date hireDate;

    /** 离职日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "离职日期", width = 30, dateFormat = "yyyy-MM-dd")
    @TableField(value="effective_date")
    private Date effectiveDate;

    /** sysOrgCode */
    @Excel(name = "sysOrgCode")
    @TableField(value="sys_org_code")
    private String sysOrgCode;

    public void setId(String id) 
    {
        this.id = id;
    }

    public String getId() 
    {
        return id;
    }

    public void setUserRealName(String userRealName) 
    {
        this.userRealName = userRealName;
    }

    public String getUserRealName() 
    {
        return userRealName;
    }

    public void setTeamId(String teamId) 
    {
        this.teamId = teamId;
    }

    public String getTeamId() 
    {
        return teamId;
    }

    public void setWorkplace(String workplace) 
    {
        this.workplace = workplace;
    }

    public String getWorkplace() 
    {
        return workplace;
    }

    public void setHireDate(Date hireDate) 
    {
        this.hireDate = hireDate;
    }

    public Date getHireDate() 
    {
        return hireDate;
    }

    public void setEffectiveDate(Date effectiveDate) 
    {
        this.effectiveDate = effectiveDate;
    }

    public Date getEffectiveDate() 
    {
        return effectiveDate;
    }

    public void setSysOrgCode(String sysOrgCode) 
    {
        this.sysOrgCode = sysOrgCode;
    }

    public String getSysOrgCode() 
    {
        return sysOrgCode;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("userRealName", getUserRealName())
            .append("teamId", getTeamId())
            .append("workplace", getWorkplace())
            .append("hireDate", getHireDate())
            .append("effectiveDate", getEffectiveDate())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("sysOrgCode", getSysOrgCode())
            .toString();
    }
}
